package com.umfwechat.common.prop;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Map.Entry;

import com.umfwechat.util.PropertyUtil;

/**
 * 微信前置平台配置分离文件（umfWeChatPlat_appConf.properties）对应静态对象
 * @author renjie
 *
 */
public enum UmfPropModel {
	INSTANCE;								//单例模式设计，避免多线程同步以及防止反序列化重新创建新的对象。
	private Map<String,String> propMap;		//存放配置key-value的map容器
	/**
	 * 构造方法，用以初始化时候读取配置文件中参数信息
	 */
	UmfPropModel() {   
//		System.setProperty("resin.home", "D:\\devSoft\\resin\\resin-4.0.48");				//自测时候需要手动设置resin根路径，用以读取配置分离的文件
		propMap=new HashMap<String,String>();
		Properties prop=PropertyUtil.getProperties("umfWeChatPlat_appConf.properties");	//读取指定的配置分离文件
		Iterator<Entry<Object, Object>> it = prop.entrySet().iterator();  					//构造迭代器，遍历配置项
        while (it.hasNext()) {  
            Entry<Object, Object> entry = it.next(); 										//获取配置项
            propMap.put((String)entry.getKey(), (String)entry.getValue());					//将配置项以key-value形式放入map容器中
        }  
	}  
	/**
	 * 获取配置文件中配置值的方法
	 * @param key
	 * @return
	 */
	 public String getPropValue(String key) {
		 return null==propMap?"":propMap.get(key);
	 }

	 public Integer getPropIntValue(String key) {
		 return null==propMap?0:Integer.parseInt(propMap.get(key));
	 }
		 
	/**
	 * 刷新配置分离文件中信息
	 * @param key
	 * @return
	 */	 
	 public void updateSpEnPropModel(){
		Properties prop=PropertyUtil.getProperties("umfWeChatPlat_appConf.properties");	//读取指定的配置分离文件
		propMap.clear();
		Iterator<Entry<Object, Object>> it = prop.entrySet().iterator();  					//构造迭代器，遍历配置项
        while (it.hasNext()) {  
            Entry<Object, Object> entry = it.next(); 										//获取配置项
            propMap.put((String)entry.getKey(), (String)entry.getValue());					//将配置项以key-value形式放入map容器中
        }  
	 }
}
